package com.shxy.cloudclassroom.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shxy.cloudclassroom.entity.pojo.LearningResource;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

public interface LearningResourceService extends IService<LearningResource> {
    /**
     * 分页获取学习资源列表
     * @param page 分页对象
     * @param wrapper 查询条件
     * @return 学习资源列表
     */
    List<LearningResource> getResourceList(Page<LearningResource> page, LambdaQueryWrapper<LearningResource> wrapper);

    /**
     * 上传学习资源
     * @param resource 资源对象
     * @param file 文件
     * @param session 用户会话
     * @return 上传结果
     */
    Map<String, Object> uploadResource(LearningResource resource, MultipartFile file, HttpSession session);

    /**
     * 下载学习资源
     * @param id 资源ID
     * @param response 响应对象
     * @param session 用户会话
     */
    void downloadResource(Integer id, HttpServletResponse response, HttpSession session);

    /**
     * 获取资源详情
     * @param id 资源ID
     * @param session 用户会话
     * @return 资源详情及相关信息
     */
    com.shxy.cloudclassroom.entity.vo.ResourceDetailVO getResourceDetail(Integer id, HttpSession session);

    /**
     * 设置资源状态
     * @param id 资源ID
     * @param status 状态
     * @return 更新结果
     */
    Map<String, Object> setIsAvailable(Long id, Integer status);
}